# -*- coding: utf-8 -*-

class MessageHead:
    def __init__(self, userName: str = None, requestGuid: str = None, requestTimeStamp: str = None, signature: str = None):
        self.userName = userName
        self.requestGuid = requestGuid
        self.requestTimeStamp = requestTimeStamp
        self.signature = signature


class TcQueryParam:
    def __init__(self, messageHead: str = None, messageBody: str = None):
        self.messageHead = messageHead
        self.messageBody = messageBody


class Policy:
    def __init__(self):
        self.policy_code = None
        self.policy_code_extend = None
        self.is_valid = None
        self.is_apply_share_flight = None
        self.seat_limit = None
        self.av_effective_sale_value = None
        self.is_agent_booking = None
        self.agent_book_fail_type = None
        self.reimbursement_type = None
        self.office_no = None
        self.analyze_ticket_office_no = None
        self.big_client_code = None
        self.res_rule_type = None
        self.fare_rule = None
        self.res_age_type = None
        self.res_number_type = None
        self.res_card_type = None
        self.resource_apply_scene_list = None

    def set_policy_code(self, policy_code):
        self.policy_code = policy_code


class DeleteTCPolicy:
    def __init__(
            self,
            policyIds: list = None,
            policyCodes: list = None,
            policyCodeExtends: list = None,
            isFuzzyMatch: int = 1,
            delType: str = 2,
    ):
        self.delType = delType
        self.isFuzzyMatch = isFuzzyMatch
        self.policyCodeExtends = policyCodeExtends
        self.policyCodes = policyCodes
        self.policyIds = policyIds


class TCPolicy:
    def __init__(self, policyCode: str = None, policyCodeExtend: str = None,
                 isValid: int = None,
                 isApplyShareFlight: int = None,
                 seatLimit: int = None,
                 avEffectiveSaleValue: int = None,
                 isAgentBooking: str = None, agentBookFailType: str = None, reimbursementType: str = None,
                 officeNo: str = None, analyzeTicketOfficeNo: str = None, bigClientCode: str = None, resRuleType: str = None, fareRule: str = None,
                 resAgeType: str = None, resNumberType: str = None, resCardType: str = None,
                 resourceApplySceneList: str = None,
                 transitConfig: str = None,
                 tripType: str = None,
                 airCompany: str = None,
                 startPort: str = None,
                 endPort: str = None,
                 cabinCodeList: str = None,
                 cabinName: str = None,
                 IsTeamTicket: str = None,
                 particularCabinCode: str = None,
                 flightNoFit: str = None,
                 flightNoList: str = None,
                 weekSegmentList: str = None,
                 startDate: str = None,
                 endDate: str = None,
                 startTakeoffApplyTime: str = None,
                 endTakeoffApplyTime: str = None,
                 applyTimeRangeSegment: str = None,
                 notFlightDate: str = None,
                 startSellDate: str = None,
                 endSellDate: str = None,
                 startSaleDay: str = None,
                 startSaleTime: str = None,
                 endSaleDay: str = None,
                 endSaleTime: str = None,
                 startSaleApplyTime: str = None,
                 endSaleApplyTime: str = None,
                 valuationType: str = None,
                 actionType: str = None,
                 addSubtractBaseType: str = None,
                 addSubtractDiscount: str = None,
                 addSubtractMoney: str = None,
                 fixedTotalPrice: str = None,
                 calculationLogic: str = None,
                 sellPriceLowerLimit: str = None,
                 sellPriceUpperLimit: str = None,
                 adultRebatePercent: str = None,
                 adultRebateMoney: str = None,
                 childRebatePercent: str = None,
                 childRebateMoney: str = None,
                 keepMoney: str = None,
                 keepMoneyPercent: str = None,
                 sellType: str = None,
                 everydayInventory: str = None,
                 remark: str = None,
                 isVerifyPrice: str = None,
                 floatPrice: str = None,
                 verifyPriceOffice: str = None,
                 carryVerifyCabinPrice: str = None,
                 carryAirCompany: str = None,
                 saleWeekSegmentList: str = None,
                 nfdType: str = None,
                 rebookSeatLimit: str = None,
                 farePriceType: str = None,
                 productType: str = None,
                 isChildEqAdultPrice: str = None,
                 adultRebateSource: str = None
                 ):
        self.policyCodeExtend = policyCodeExtend
        self.policyCode = policyCode
        self.isValid = isValid
        self.isApplyShareFlight = isApplyShareFlight
        self.seatLimit = seatLimit
        self.avEffectiveSaleValue = avEffectiveSaleValue
        self.isAgentBooking = isAgentBooking
        self.agentBookFailType = agentBookFailType
        self.reimbursementType = reimbursementType
        self.officeNo = officeNo
        self.analyzeTicketOfficeNo = analyzeTicketOfficeNo
        self.bigClientCode = bigClientCode
        self.resRuleType = resRuleType
        self.fareRule = fareRule
        self.resAgeType = resAgeType
        self.resNumberType = resNumberType
        self.resCardType = resCardType
        self.resourceApplySceneList = resourceApplySceneList
        self.transitConfig = transitConfig
        self.tripType = tripType
        self.airCompany = airCompany
        self.startPort = startPort
        self.endPort = endPort
        self.cabinCodeList = cabinCodeList
        self.cabinName = cabinName
        self.IsTeamTicket = IsTeamTicket
        self.particularCabinCode = particularCabinCode
        self.flightNoFit = flightNoFit
        self.flightNoList = flightNoList
        self.weekSegmentList = weekSegmentList
        self.startDate = startDate
        self.endDate = endDate
        self.startTakeoffApplyTime = startTakeoffApplyTime
        self.endTakeoffApplyTime = endTakeoffApplyTime
        self.applyTimeRangeSegment = applyTimeRangeSegment
        self.notFlightDate = notFlightDate
        self.startSellDate = startSellDate
        self.endSellDate = endSellDate
        self.startSaleDay = startSaleDay
        self.startSaleTime = startSaleTime
        self.endSaleDay = endSaleDay
        self.endSaleTime = endSaleTime
        self.startSaleApplyTime = startSaleApplyTime
        self.endSaleApplyTime = endSaleApplyTime
        self.valuationType = valuationType
        self.actionType = actionType
        self.addSubtractBaseType = addSubtractBaseType
        self.addSubtractDiscount = addSubtractDiscount
        self.addSubtractMoney = addSubtractMoney
        self.fixedTotalPrice = fixedTotalPrice
        self.calculationLogic = calculationLogic
        self.sellPriceLowerLimit = sellPriceLowerLimit
        self.sellPriceUpperLimit = sellPriceUpperLimit
        self.adultRebatePercent = adultRebatePercent
        self.adultRebateMoney = adultRebateMoney
        self.childRebatePercent = childRebatePercent
        self.childRebateMoney = childRebateMoney
        self.keepMoney = keepMoney
        self.keepMoneyPercent = keepMoneyPercent
        self.sellType = sellType
        self.everydayInventory = everydayInventory
        self.remark = remark
        self.isVerifyPrice = isVerifyPrice
        self.floatPrice = floatPrice
        self.verifyPriceOffice = verifyPriceOffice
        self.carryVerifyCabinPrice = carryVerifyCabinPrice
        self.carryAirCompany = carryAirCompany
        self.saleWeekSegmentList = saleWeekSegmentList
        self.nfdType = nfdType
        self.rebookSeatLimit = rebookSeatLimit
        self.farePriceType = farePriceType
        self.productType = productType
        self.isChildEqAdultPrice = isChildEqAdultPrice
        self.adultRebateSource = adultRebateSource
